// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements.  See the NOTICE file distributed with
// this work for additional information regarding copyright ownership.
// The ASF licenses this file to You under the Apache License, Version 2.0
// (the "License"); you may not use this file except in compliance with
// the License.  You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package wrapper

import (
	"github.com/apache/incubator-eventmesh/eventmesh-server-go/runtime/consts"
	"go.uber.org/atomic"
	"os"
)

var (
	defaultEventStore = "defibus"
)

type Base struct {
	CurrentEventStore string
	Started           *atomic.Bool
	Inited            *atomic.Bool
}

func DefaultBaseWrapper() *Base {
	val := os.Getenv(consts.EVENT_STORE_ENV)
	if val == "" {
		val = defaultEventStore
	}
	return &Base{
		CurrentEventStore: val,
		Started:           atomic.NewBool(false),
		Inited:            atomic.NewBool(false),
	}
}
